home *** CD-ROM | disk | FTP | other *** search
/ JCSM Shareware Collection 1993 November / JCSM Shareware Collection - 1993-11.iso / cl720 / tpfast4j.lzh / TPFAST.GER < prev    next >
Text File  |  1992-09-11  |  75KB  |  2,049 lines

  1.                           TPFAST 4.0
  2.                           -----------
  3.                   'FAST Turbo Pascal library'
  4.          CopyRight (c) 1989,1990,1991    Steven Lutrov
  5.                             INHALT
  6. 1.  Einleitung. . . . . . . . . . . . . . . . . . . . . .
  7.         1.1     Copyright . . . . . . . . . . . . . . . .
  8.         1.2     Technische Unterstützung. . . . . . . . .
  9.         1.3     Vertrieb. . . . . . . . . . . . . . . . .
  10.           1.3.1       P.D.N . . . . . . . . . . . . . . .
  11.         1.4     Registrierung . . . . . . . . . . . . . .
  12. 2.   Funktionsbeschreibungen. . . . . . . . . . . . . . .
  13.         2.1     Dateiübersicht. . . . . . . . . . . . . .
  14. 3.      Kurzübersicht . . . . . . . . . . . . . . . . . .
  15.         3.1     Bit-manipulation  . . . . . . . . . . . .
  16.         3.2     Dateien . . . . . . . . . . . . . . . . .
  17.         3.3     Tastatur. . . . . . . . . . . . . . . . .
  18.         3.4     Bildschirm. . . . . . . . . . . . . . . .
  19.         3.5     Text-Graphik Modus. . . . . . . . . . . .
  20.         3.6     Strings . . . . . . . . . . . . . . . . .
  21. 4.      Detaillierte Dokumentation und Referenz . . . . .
  22.         4.1     Bit-manipulation. . . . . . . . . . . . .
  23.         4.2     Dateien . . . . . . . . . . . . . . . . .
  24.         4.3     Tastatur. . . . . . . . . . . . . . . . .
  25.         4.4     Bildschirm. . . . . . . . . . . . . . . .
  26.         4.5     Text Graphik Modus. . . . . . . . . . . .
  27.         4.6     Strings . . . . . . . . . . . . . . . . .
  28.  
  29.  
  30. 1.  Einleitung:
  31. ----------------------
  32.  
  33. Jeder der ernsthaft in Pascal programmiert kommt früher oder
  34. später an den Punkt wo er sagt:"Das muß schneller gehen!"
  35. Die beste Methode um schneller zu werden, ist  in Assembler zu
  36. programmieren. Sogar C Programmierer müssen mit Assembler
  37. arbeiten um die Geschwindigkeit ihrer Programme zu erhöhen.
  38.  
  39. Ich habe einige Routinen geschrieben, die die
  40. Ausführgeschwindigkeit eines jeden Programms erheblich steigern
  41. können. Der Profiler stellte eine Verbesserung der
  42. Geschwindigkeit um bis zu 80% fest. Ich habe daher absichtlich
  43. Funktionen eingebaut, die von der Arbeitsweise her mit der
  44. Standard run-time identisch sind, oder ihr zumindest sehr
  45. ähneln.
  46.  
  47. Dieses Toolkit beinhaltet keine tollen Pull-down Menues oder
  48. explodierende Fenster, aber das war auch nie meine Absicht. Es
  49. beinhaltet nur low-level Funktionen und kann daher benutzt
  50. werden um solche netten Kleinigkeiten zu programmieren...
  51. (Dafür benutze ich es jedenfalls...)
  52.  
  53. Das Toolkit beinhaltet über 100 sehr nützliche und laufzeitoptimierte
  54. Funktionen.
  55.  
  56.  
  57.  
  58.  
  59. Es folgt eine Liste aller Assembler Moduldateien und eine
  60. kurze Beschreibung ihrer Funktionen.
  61.  
  62.            TPFBIT.ASM        - mathematische bitmanipulation.
  63.            TPFKBD.ASM        - Routinen zur Tastaturabfrage.
  64.            TPFVIDEO.ASM      - Routinen zum Bildschirm.
  65.            TPFSTR.ASM        - Routinen zur Stringverarbeitung.
  66.  
  67. Alle diese Funktionen wurden mit Borlands Turbo Pascal 6.0
  68. getestet, aber ich kann keinerlei Garantie auf ihre
  69. Gebrauchsfähigkeit übernehmen. Ich garantiere nur, daß dieses
  70. Toolkit Platz auf ihrer Festplatte benötigt. Bitte lesen Sie
  71. den Abschnitt  "Copyright " für mehr Informationen hierzu.
  72. Dieses Toolkit ist Shareware und daher nicht im Public Domain,
  73. nicht kostenlos und auch nicht in irgendeiner Form beschränkt.
  74. Bitte lesen Sie Abschnitt 1.3 für genauere Informationen.
  75.  
  76.  
  77. 1.1 CopyRight
  78. ------------------------
  79.  
  80. Weder Steven Lutrov noch die Vertreiber dieser Software sind
  81. für irgendwelche Schäden (uneingeschränkt eingeschlossen sind
  82. Schäden aus entgangenem Gewinn, Betriebsunterbrechung, Verlust
  83. von geschäftlichen Informationen oder von Daten oder anderem
  84. finanziellen Verlust) ersatzpflichtig, die aufgrund der
  85. Benutzung dieses Produktes oder der Unfähigkeit dieses Produkt
  86. zu verwenden entstehen, selbst wenn Steven Lutrov von der
  87. Möglichkeit eines solchen Schadens unterrichtet worden ist.
  88. Ansprüche die auf unabdingbaren gesetzlichen Vorschriften
  89. beruhen bleiben unberührt.
  90.  
  91.  
  92. 1.2 Technische Unterstützung
  93. ------------------------------------------------
  94.  
  95. Sie können am besten technische Unterstützung erhalten wenn
  96. sie ein Modem besitzen und sich etwas in der Mailbox-Szene
  97. auskennen. Sie können das Software Parlour BBS anrufen wo eine
  98. Konferenz für dieses Programm eingerichtet wird. Sie können
  99. dort eine Nachricht (in Englisch) hinterlassen, so daß Ihnen
  100. von mir oder anderen geholfen werden kann usw.
  101. Sie können mir auch an die angegebene Adrresse schreiben
  102. Ich garantiere daß Sie die neueste Version dieses Toolkits auf
  103. dem Software Parlour BBS finden können.
  104.  
  105.             Mailbox-nummer:    +61-3-301-1877
  106.                                300-9600 Baud.
  107.  
  108.              Adresse der Box:      3:635/534@fido.org
  109.                                    58:4100/34@intlnet
  110.  
  111. Oder schreiben Sie (in englischer Sprache) an:
  112.  
  113.                           Steven Lutrov.
  114.                           PO BOX 466
  115.                           Essendon,
  116.                           VIC 3040
  117.                           Australia
  118.  
  119.  
  120. 1.3 Verteilung
  121. ---------------------
  122.  
  123. Sie haben die ausdrückliche Erlaubnis des Autors die Dateien
  124. des Toolkits zu kopieren und weiter zu geben. Sie dürfen das
  125. komplette Programm wann, wo und wie Sie möchten ausprobieren.
  126. Nachdem Sie dieses Toolkit eine angemessene Probezeit
  127. benutzt haben sollten Sie es entweder mit dem Autor
  128. registrieren oder es nicht weiter benutzen. Ihre finanzielle
  129. Unterstützung ist sehr wichtig, da nur so
  130. Sharewareprogrammierer einen finanziellen Anreiz haben neue
  131. Softwareprodukte herzustellen. Ohne ihre Unterstützung wird
  132. eine große Anzahl von preiswerter, erstklassiger Software
  133. nicht mehr erhältlich sein.
  134. Falls Sie dieses Produkt per Telekommunikationstechniken
  135. (Telefon, BTX etc) weitergeben, müssen Sie folgendes beachten:
  136. * Z-modem oder ein anderes Übertragungsprotokoll muß benutzt
  137.   werden.
  138. * Alle Dateien (inklusive Dokumentation) müssen übertragen
  139.   werden. Am besten geschieht dies in archivierter Form, d.h.
  140.   alle Dateien werden in eine einzige große Datei
  141.   zusammengefasst.
  142.  
  143.  
  144. 1.3.1 P.D.N.
  145. -------------------
  146.  
  147. Das P.D.N (Programmers Distribution Network) hat das Ziel
  148. Programmierer auf der ganzen Welt zu unterstützen . Viele
  149. bekannte Programmierer sind Mitglieder. Mit Hilfe des P.D.N
  150. werden Quelltext, Utilities, Libraries, Shareware, Public
  151. Domain (Allgemeingut) und Freeware vertrieben.
  152. Dieses Toolkit wird offiziell im P.D.N veröffentlicht und
  153. erfüllt alle Voraussetzungen dazu.
  154.  
  155. Genauere Informationen können Sie von
  156.  
  157. PDN International Coordinator  - Erik Vanriper
  158. 1:260/230@fido.org
  159.  
  160. erhalten.
  161.  
  162.  
  163. 1.4  Registrierung
  164. ------------------------------
  165.  
  166. Warum überhaupt bezahlen?
  167. 1. Sie erhalten den kompletten Assembler und Pascal Quelltext
  168.    und dürfen diesen Ihren Bedürfnissen anpassen.
  169. 2. Sie werden automatisch Mitglied des Software Parlour BBS.
  170.    (Der Mailbox wo TPFAST und andere Programmierleckereien
  171.    herkommen)
  172. 3. Kostenlose Aufrüstungsmöglichkeiten.
  173. 6. Ihre Ideen beeinflußen nachfolgende Versionen, wobei im
  174.    Quelltext auf Ihre Anregung hingewiesen wird.
  175. 7. Sie erhalten ein Gefühl des Stolzes, dadurch daß sie
  176.    wirklich an der Sharewarerevolution teilgenommen haben.
  177. 8. Sie helfen mit Software Preise niedrig zu halten, da Sie
  178.    eine Vertriebsmethode unterstützen, die keine teuren
  179.    Werbekampagnen benötigt.
  180.  
  181. Also, bitte nehmen Sie dies ernst und genießen Sie die
  182. Tatsache, daß Sie gute Software legal an ihre Freunde und
  183. Kollegen weitergeben können.
  184. Falls sie dieses Toolkit registrieren möchten, so drucken Sie
  185. bitte die Datei 'register.txt' aus, tragen Sie die nötigen
  186. Informationen ein und senden Sie sie zusammen mit einem Scheck
  187. (oder einem anderen Zahlungsmittel) an den o.g. Autor.
  188.  
  189.  
  190. 2.  Funktionsbeschreibungen
  191. ---------------------------------
  192.  
  193. Die folgenden Abschnitte vermitteln eine kurze Übersicht über
  194. die beinhalteten Funktioen.
  195.  
  196.  
  197. Bit-manipulation
  198. ---------------------------
  199. Diese Funktionen verändern bits, wie zum Beispiel links oder
  200. rechts verschieben in bytes oder words.
  201. Andere mathematische Funktionen ermöglichen die Konvertierung
  202. von bytes und words in hex-strings.
  203.  
  204.  
  205. Dateien
  206. ---------------
  207. Diese Funktionen unterstützen das Arbeiten mit Dateien, wie
  208. z.B. erstellen, öffnen, lesen, schreiben, und löschen von
  209. Dateien. Jede erstellte Datei kann alle verfügbaren Attribute,
  210. inklusive hidden, system, read-only, und sub-directory
  211. Attribute besitzen.
  212. Alle Dateifunktionen sind mit einem eindeutigen (integer)
  213. Handle inidziert. Dieser Handle wird von DOS verwaltet. Sie
  214. können Dateien zum lesen, schreiben oder lesen und schreiben
  215. öffnen und Sie können die logische Lese/Schreibposition in
  216. einer Datei verändern.
  217. Weitere Funktionen erlauben Ihnen in einen bestimmten Sektor
  218. zu schreiben und verify ein, bzw. aus zu schalten.
  219.  
  220.  
  221. Tastatur
  222. --------------
  223. Diese Funktionen stellen praktisch alle low-level
  224. Tastaturfunktionen zur Verfügung, die Sie jemals brauchen
  225. werden.
  226. Sie können feststellen ob die ALT,STRG,EINFG gedrückt werden,
  227. ob die LINKE SHIFT -Taste, die RECHTE SHIFT-Taste oder BEIDE
  228. SHIFT-Tasten gedrückt werden. Sie können den Stand von
  229. CAPSLOCK (Großschrift), SCROLLOCK, NUMLOCK etc. abfragen und
  230. diese Tasten ein- bzw. ausschalten.
  231. Sie können aus jeder Taste eine besondere gedrückt=ein - nicht
  232. gedrückt=aus-Taste machen, außerdem den scan-code jeder Taste
  233. abfragen, den Tastaturpuffer löschen usw.
  234.  
  235. Video
  236. ----------
  237. Diese Funktionen umfassen wahrscheinlich alle grundlegenden
  238. Funktionen zur Bildschirmsteuerung, die sie jemals brauchen
  239. werden. Alle Funktionen schreiben direkt ins Video RAM um
  240. optimale Geschwindigkeiten zu erreichen und unterstützen sogar
  241. die alten CGA-Monitore mit Schnee-problemen.
  242. In der unit Datei TPFAST.PAS befindet sich eine globale
  243. Variable, die auf TRUE gesetzt werden muß, wenn sie einen
  244. dieser alten Bildschirme haben, sonst sollte sie auf FALSE gesetzt
  245. bleiben.
  246. Außerdem werden mehrere Bildschirmseiten, scrolling, Cursor-
  247. bewegungen, Bildschirmspeicherung, speichern eines
  248. Bildschirmausschnitts, verändern der Textattribute von Teilen
  249. des Bildschirms oder auch des gesamten Bildschirms
  250. unterstützt.
  251. Strings können formatiert, im Blocksatz ausgegeben, zentriert
  252. und gekürzt werden bevor sie auf dem Bildschirm angezeigt
  253. werden. Strings können auch vertikal dargestellt werden.
  254. Strings könenn in jede Bildschirmseite mit verschiedenen
  255. Attributen an jede Position in invertierten oder intensiven
  256. Farben geschrieben werden.
  257. Sie können die Attribute eines jeden Buchstabens oder strings auf
  258. dem Bildschirm anzeigen oder verändern. Das blink-bit kann
  259. ein/ausgeschaltet werden. Dadurch erhalten Sie die Möglichkeit
  260. zum Beispiel einen gelben Hintergrund und einen schwarzen
  261. Vodergrund darzustellen (was man nicht sehr häufig sieht).
  262.  
  263. Text-Grafiken
  264. --------------------
  265. Diese Funktionen umfassen grundlegende Textbildschirmfunktionen,
  266. wie z.B. speichern, kopieren und wiederherstellen von Bildschirm-
  267. inhalten mit Hilfe eines Puffers, Kästen zeichnen oder einen ganzen
  268. Bildschirm mit einem Zeichen füllen.
  269. Man kann einen Teil, oder den gesamten Bildschirm in jede
  270. Richtung bewegen und den Inhalt eines gesamten, oder eines
  271. Teilbildschirmes vertikal oder horizontal verschieben.
  272.  
  273.  
  274. Strings
  275. ------------
  276. Diese Funktionen führen sehr schnelle string-manipulationen
  277. aus,einige sind in der Funktionsweise mit der run-time
  278. (Standardfunkion) identisch, unterscheiden sich aber sehr
  279. in der Ausführungsgeschwindigkeit.
  280. Die Funktionen umfassen: Zeichen ändern oder löschen, Strings
  281. vergleichen, einen Teilstring heraussuchen, Groß - oder
  282. Kleinschreibung ändern, einen String bis auf eine bestimmte
  283. Länge mit Leerzeichen auffüllen (padding), suchen und ersetzen
  284. von Strings, Strings erzeugen und Wörter in einem String zählen.
  285.  
  286.  
  287. Dateiübersicht
  288. --------------------------
  289. Die folgenden Dateien sollten sich im Software-Paket befinden:
  290.  
  291.     REGISTER.TXT   - Produkt Registrier-Formular
  292.     TPFAST.TXT     - Dokumentation
  293.     READ.ME        - Besondere Informationen zur aktuellen Version
  294.     TPFAST.PAS     - Tpfast unit Datei
  295.     TPFBIT.ASM     - mathematische Funktionen, Assembler Quelltext
  296.     TPFFILE.ASM    - Datei-funktioen, Assembler Quelltext
  297.     TPFKBD.ASM     - Tastatur-Funktionen, Assembler Quelltext
  298.     TPFSCRN.ASM    - Bildschirm-Funktionen, Assembler Queltext
  299.     TPFSTR.ASM     - String-Funktionen, Assembler Quelltext
  300.     TPFVIDEO.ASM   - Text-Grafik-Funktionen, Assembler Quelltext
  301.     TPFBIT.OBJ     - Mathematische Funktionen, Assembler Objekt Datei
  302.     TPFFILE.OBJ    - Datei-Funktionen, Assembler Objekt Datei
  303.     TPFKBD.OBJ     - Tastatur-Funktionen, Assembler Objekt-Datei
  304.     TPFSCRN.OBJ    - Bildschirm-Funktionen, Assembler Objekt-Datei
  305.     TPFSTR.OBJ     - String-Funktionen, Assembler Objekt-Datei
  306.     TPFVIDEO.OBJ   - Text-Grafik Funktionen, Assember Obejkt Datei
  307.     T_BIT.PAS      - Beispielprogramm zu Bit-Funktionen
  308.     T_FILE.PAS     - Beispielprogramm zu Datei-Funktionen
  309.     T_KBD.PAS      - Beispielprogramm zu Tastatur-Funktionen
  310.     T_SCRN.PAS     - Beispielprogramm zu Bildschirm-Funktionen
  311.     T_STR.PAS      - Beispielprogramm zu String-Funktionen
  312.  
  313.  
  314.  
  315. 3. Kurzübersicht
  316. ----------------------
  317.  
  318. 3.1 Bit-Manipulation
  319. -----------------------------
  320. bytetohex       - konvertiert ein Byte in hexadezimal
  321. rotatebyteleft  - verschiebt die Bits in einem Byte nach links
  322. rotatebyteright - verschiebt die Bits in einem Byte nach rechts
  323. rotatewordleft  - verschiebt die Bits in einem Word nach links
  324. rotatewordright - verschiebt die Bits in einem Word nach rechts
  325. wordtohex       - Konvertiert ein Word in Hexadezimal
  326.  
  327. 3.2 Dateien
  328. -----------------
  329. fclose          - schließt eine Datei
  330. fcreate         - Erzeugt eine Datei mit festgelegten
  331.                   Attributen
  332. ferase          - Löscht angegebene Datei
  333. Fopen           - öffnet eine Datei mit bestimmten
  334.                   Zugriffsrechten
  335. fread           - Liest den Inhalt einer Datei in einen Puffer
  336. fseek           - ändert die logische lese/schreib-Position in
  337.                   einer Datei
  338. fwrite          - Schreibt in eine Datei
  339. getverify       - Zeigt an ob verify ein - oder ausgeschaltet ist
  340. readsector      - Liest ab einem bestimmten Sektor auf Floppy/Platte
  341. setverify       - Schaltet verify ein/aus
  342. writesector     - Schreibt in einen bestimmten Sektor auf
  343.                   Floppy/Platte
  344.  
  345. 3.3 Tastatur
  346. -----------------
  347. altkeydown      - Zeigt an ob die <alt> Taste gedrückt wird
  348. capslockdown    - Zeigt an ob Großschrift gedrückt wird
  349. capslockon      - Zeigt an ob Großschrift eingeschaltet ist
  350. clearcapslock   - schaltet Großschrift aus
  351. clearins        - schaltet Einfg aus
  352. clearnumlock    - schaltet numlock aus
  353. clearscrolllock - schaltet Rollen aus
  354. crtlkeydown     - zeigt an ob Strg gedrückt wird.
  355. ekeypressed     - abfragen ob eine Enhanced (AT) Tastatur Taste
  356.                   gedrückt wurde
  357. freshchar       - Löscht den Tastaturpuffer und gibt den nächsten
  358.                   Tastendruck aus.
  359. getekey         - Enhanced (AT) Tastatur abfragen
  360. getkey          - Tastatur abfragen
  361. inskeydown      - abfragen ob Einfg gedrückt wird
  362. inskeyon        - abfragen ob Einfg zur Zeit eingeschaltet ist.
  363. keypause        - macht aus beliebiger Taste eine "gedrückt=an -
  364.                   nicht gedrückt=aus" Taste
  365. lastkey         - gibt den letzten Tastaturcode aus dem Puffer aus
  366. leftshiftdown   - zeigt an ob die linke shift Taste gedrück wird.
  367. nextkey         - gibt den nächsten Tastaturcode aus, ohne ihn im
  368.                   Puffer zu löschen
  369. numlockdown     - zeigt an ob Num gedrückt wurde
  370. numlockon       - zeigt an ob Num zur Zeit eingeschaltet ist
  371. rightshiftdown  - zeigt an ob die rechte Shift Taste zur Zeit
  372.                   gedrückt wird.
  373. scrolllockdown  - zeigt an ob Rollen zur Zeit gedrückt wird.
  374. scrolllockon    - zeigt an ob Rollen zur Zeit eingeschaltet ist
  375. setcapslock     - schaltet Großschrift ein
  376. setins          - schaltet Einfg ein
  377. setnumlock      - schaltet Num ein
  378. setscrolllock   - schaltet Rollen ein
  379.  
  380.  
  381. 3.4 Bildschirm
  382. ------------------
  383.  
  384. blinkoff        - schaltet das Textattribut blinken aus
  385. blinkon         - schaltet das Textattribut blinken ein
  386. clearpage       - löscht eine vorher gespeicherte Bildschirmseite
  387.                   aus dem Speicher
  388. colourx         - Ändert die Attribute einer Textspalte
  389. cursordown      - Bewegt den Cursor eine beliebige Zahl von Zeilen
  390.                   nach unten
  391. cursorleft      - Bewegt den Cursor eine beliebige Zahl von Spalten
  392.                   nach links
  393. cursoroff       - Macht den Cursor unsichtbar
  394. cursoron        - Macht den Cursor sichtbar
  395. cursorright     - Bewegt den Cursor eine beliebige Zahl von Spalten
  396.                   nach rechts
  397. cursorup        - Bewegt den Cursor eine beliebige Zahl von Zeilen
  398.                   nach oben
  399. dsp             - schreibt einen String direkt in den Bildschirmspeicher
  400. dspat           - schreibt einen String direkt in den Bildschirmspeicher
  401.                   an die angegebenen Koordinaten mit dem angegebenen
  402.                   Attribut.
  403. dspcolour       - schreibt einen String direkt in den Bildschirmspeicher
  404.                   mit dem angegebenen Attribut
  405. dspend          - schreibt einen String direkt in den Bildschirmspeicher
  406.                   und löscht die restlichen Zeichen
  407. dspjust         - schreibt einen String direkt in den Bildschirmspeicher
  408.                   und richtet ihn an einer bestimmten Zeilen - und
  409.                   Spaltenposition aus.
  410. dspln           - schreibt einen String direkt in den Bildschirmspeicher
  411. dsplncolour     - schreibt einen String direkt in den Bildschirmspeicher
  412.                   mit dem angegebenen Attribut
  413. dsppart         - schreibt einen Teilstring direkt in den Bildschirm-
  414.                   speicher an der angegebenen Stelle mit den angegebenen
  415.                   Attributen
  416. dspvert         - schreibt einen String vertikal direkt in den Bild-
  417.                   schirmspeicher
  418. formatleft      - schreibt einen String linksbündig direkt in den Bild-
  419.                   schirmspeicher
  420. formatright     - schreibt einen String rechtsbündig direkt in den Bild-
  421.                   schirmspeicher
  422. getcolour       - zeigt die Attribute einer beliebigen Bildschirmposition
  423.                   an
  424. getpage         - Holt die aktuelle Seite
  425. intenseoff      - schaltet das intensiv-Attribut aus
  426. intenseon       - schaltet das intensiv-Attribut ein
  427. normal          - setzt das normal-Attribut
  428. reverse         - dreht die Attribute um
  429. rowcolour       - ändert die Attribute einer beliebigen Textzeile
  430. screencolour    - ändert die Attribute eines rechteckigen Bildschirm-
  431.                   ausschnitts
  432. setcolour       - setzt ein Attribut an einer beliebigen Stelle
  433. setpage         - macht aus einer bestimmten Bildschirmseite die
  434.                   aktuelle und aktive Seite
  435. swappage        - schreibt den gesamten Speicherbereich einer Bild-
  436.                   schirmseite zu einem Puffer und gibt diesen Speicher-
  437.                   bereich frei.
  438.  
  439.  
  440. 3.5 Textgraphik-Modus
  441. --------------------------
  442.  
  443. copyclear       - Kopiert den Inhalt eines Bildschirmbereichs
  444. drawbox         - zeichnet eine einfache Box auf den Bildschirm
  445. filscreen       - füllt einen Teil des Bildschirms mit einem be-
  446.                   liebigen Zeichen mit beliebigen Attribut
  447. restorescreen   - Stellt einen zuvor gespeicherten Bildschirminhalt
  448.                   wieder her
  449. savescreen      - speichert einen Bildschirmausschnitt
  450. screendown      - Bewegt einen Bildschirmausschnitt 1 Zeile nach unten
  451. screenleft      - Bewegt einen Bildschirmausschnitt 2 Spalten nach links
  452. screenright     - Bewegt einen Bildschirmausschnitt 2 Spalten nach rechts
  453. screenup        - Bewegt einen Bildschirmausschnitt 1 Zeile nach oben
  454. scrollx         - verschiebt einen bestimmten Bildschirmausschnitt nach
  455.                   links oder rechts
  456. scrolly         - verschiebt einen bestimmten Bildschirmausschnitt nach
  457.                   oben oder unten
  458.  
  459.  
  460. 3.6 Strings
  461. -----------------
  462.  
  463. changechar      - Ändert jedes Vorkommnis eines bestimmten Buchstabens
  464.                   in einem String
  465. compare         - Vergeicht 2 strings, ohne auf Groß/Kleinschrift zu
  466.                   achten
  467. deletechar      - Löscht jedes Vorkommnis eines bestimmten Buchstabens
  468.                   in einem String
  469. deleteleft      - Löscht alle Buchstaben vom Anfang eines Strings
  470.                   bis ein bestimmter Buchstabe erreicht ist
  471. deleteright     - Löscht alle Buchstaben vom Ende des Strings aus bis
  472.                   ein bestimmter Buchstabe erreicht ist
  473. leftend         - Gibt das linke Ende eines Strings bis zu einem
  474.                   bestimmten Buchstaben aus
  475. lowercase       - Ändert einen String in Kleinbuchstaben
  476. overwrite       - Überschreibt einen Teil eines Strings mit einem
  477.                   Substring
  478. padcentre       - Füllt (pad) einen String auf eine bestimte Länge auf
  479.                   durch einfügen von Leerzeichen an beliebigen Stellen
  480. padends         - Verlängert einen String durch auffüllen mit Leerzeichen
  481.                   an beiden Enden
  482. padleft         - Füllt den Anfang eines Strings mit Leerzeichen und ver-
  483.                   längert ihn so auf eine bestimmte Länge
  484. padright        - Füllt das Ende eines Strings mit Leerzeichen und ver-
  485.                   längert ihn so auf eine bestimmte Länge
  486. replace         - Löscht eine bestimmte Anzahl von Buchstaben und ersetzt
  487.                   sie durch einen Substring
  488. rightend        - Gibt das rechte Ende eines Strings bis zu einem
  489.                   bestimmten Buchstaben aus
  490. seekstring      - Durchsucht einen String nach einem Substring
  491. stringend       - Gibt eine bestimmte Zahl von Buchstaben vom Stringende
  492.                   aus wieder
  493. stringof        - Erzeugt einen neuen String aus Wiederholungen eines
  494.                   Substrings
  495. uppercase       - Ändert einen String in Großbuchstaben
  496. wordcount       - Zählt die Anzahl Wörter in einem String
  497.  
  498.  
  499. 4. Detaillierte Dokumentation und Referenz
  500. -------------------------------------------------
  501.  
  502. Der folgende Text beschreibt im Detail alle Funktionen dieses
  503. Toolkits. Wenn ich Funktionen sage meine ich auch Prozeduren
  504. da sie für mich im Grunde das selbe sind. Das Format ist sehr
  505. einfach und klar und benötigt daher keinerlei Erklärung
  506. Alle Funktionen sind in alphabetischer Reihenfolge aufgelistet
  507. und sollten daher recht einfach auffindbar sein.
  508.  
  509.  
  510. 4.1 Bit-manipulation
  511. ------------------------------
  512.  
  513. ------------------------------------------------------
  514. bytetohex
  515.  
  516. BESCHREIBUNG    - konvertiert ein Byte in hexadezimal
  517.  
  518. SCHREIBWEISE    - function bytetohex(num:byte):stype;
  519.  
  520. PARAMETER       - num - das zu konvertierende byte
  521.  
  522. ERGEBNIS        - ein Hexadezimalstring der das Byte darstellt
  523.  
  524. -------------------------------------------------------
  525. rotatebyteleft
  526.  
  527. BESCHREIBUNG    - verschiebt die Bits in einem Byte nach links
  528.  
  529. SCHREIBWEISE    - function rotatebyteleft(num,nbits :byte):byte;
  530.  
  531. PARAMETER       - num   - das zu bearbeitende Byte
  532.                   nbits - die Anzahl der Stellen um die verschoben
  533.                           werden soll
  534.  
  535. ERGEBNIS        - das modifizierte Byte
  536.  
  537. ------------------------------------------------------
  538. rotatebyteright
  539.  
  540. BESCHREIBUNG    - verschiebt die Bits in einem Byte nach rechts
  541.  
  542. SCHREIBWEISE    - function rotatebyteright(num,nbits :byte):byte;
  543.  
  544. PARAMETER       - num   - das zu bearbeitende Byte
  545.                   nbits - die Anzahl der Stellen um die verschoben
  546.                           werden soll
  547.  
  548. ERGEBNIS        - das modifizierte Byte
  549.  
  550.  
  551. ------------------------------------------------------
  552. rotatewordleft
  553.  
  554. BESCHREIBUNG    - verschiebt die Bits in einem Word nach links
  555.  
  556. SCHREIBWEISE    - function rotatewordleft(num :word;nbits :byte):word;
  557.  
  558. PARAMETER       -  num   - das zu bearbeitende Word
  559.                   nbits - die Anzahl der Stellen um die verschoben
  560.                           werden soll
  561.  
  562. ERGEBNIS        -  das modifizierte Word
  563.  
  564. ------------------------------------------------------
  565. rotatewordright
  566.  
  567. BESCHREIBUNG    - verschiebt die Bits in einem Word nach rechts
  568.  
  569. SCHREIBWEISE    - function rotatewordright(num :word;nbits :byte):word;
  570.  
  571. PARAMETER       -   num   - das zu bearbeitende Word
  572.                   nbits - die Anzahl der Stellen um die verschoben
  573.                           werden soll
  574.  
  575. ERGEBNIS        - das modifizierte Word
  576.  
  577. ------------------------------------------------------
  578. wordtohex
  579.  
  580. BESCHREIBUNG    - konvertiert eine word-Variable in Hexadezimal
  581.  
  582. SCHREIBWEISE    - function bytetohex(num : word) : stype;
  583.  
  584. PARAMETER       - num - das zu konvertierende Word
  585.  
  586. ERGEBNIS        - ein Hexadezimal String der das Word darstellt
  587.  
  588.  
  589. 4.2 Dateien
  590. ---------------
  591.  
  592. ------------------------------------------------------
  593. fclose
  594.  
  595. BESCHREIBUNG    - schließt eine Datei
  596.  
  597. SCHREIBWEISE    - function fclose(handle : integer) : boolean;
  598.  
  599. PARAMETER       - handle - der DOS Datei-handle
  600.  
  601. ERGEBNIS        -  true - Datei wurde ohne Fehler geschlossen
  602.                   false - Datei wurde nicht richtig geschlossen
  603.  
  604. ------------------------------------------------------
  605. fcreate
  606.  
  607. BESCHREIBUNG    - Erzeugt eine Datei mit bestimmten Attributen. Die
  608.                   Attribute sind die selben wie die der standard
  609.                   run-time library, aber anyfile ist nicht erlaubt.
  610.                   Benutzen Sie die logischen operatoren für
  611.                   Attributkombinationen
  612.                   z.B.: (0 or 2 or 5) usw.
  613.  
  614. SCHREIBWEISE    - function fcreate(fname : string; attribute : integer)
  615.                   :integer;
  616.  
  617. PARAMETER       -    fname - Der Name der zu erzeugenden Datei.
  618.                   Attribut - Das Attribut der zu erzeugenden Datei.
  619.                                          0 = read only
  620.                                          1 = hidden
  621.                                          2 = system file
  622.                                          3 = volume label entry
  623.                                          4 = subdirectory
  624.                                          5 = archive file
  625.  
  626.  
  627. ERGEBNIS        - >=0 - Feherfrei (gibt DOS-Handle zurück)
  628.                    -3 - Pfad nicht gefunden
  629.                    -4 - zu viele offene Dateien
  630.                    -5 - Zugriff verweigert
  631.  
  632. ------------------------------------------------------
  633. ferase
  634.  
  635. BESCHREIBUNG    - Löscht angegebene Datei
  636.  
  637. SCHREIBWEISE    - function ferase(name : string) : integer;
  638.  
  639. PARAMETER       - name - der Name der zu löschenden Datei
  640.  
  641. ERGEBNIS        -  0 - Fehlerfrei
  642.                   -2 - Datei nicht gefunden
  643.                   -5 - Zugriff verweigert
  644.  
  645. ------------------------------------------------------
  646. fopen
  647.  
  648. BESCHREIBUNG    - Öffnet Datei mit angegebenen Zugriffsrechten
  649.  
  650. SCHREIBWEISE    - function fopen(name : string; access : integer)
  651.                   :integer;
  652.  
  653. PARAMETER       -   name - der Name der zu öffnenden Datei
  654.                   access - das Zugriffsrecht auf die Datei
  655.                      0 - nur Lesezugriff
  656.                      1 - nur Schreibzugriff
  657.                      2 - Lese - und Schreibzugriff
  658.  
  659. ERGEBNIS        - >=0 - Fehlerfrei (gibt DOS-Handle zurück)
  660.                    -2          - Datei nicht gefunden
  661.                    -4          - zu viele Dateien geöffnet
  662.                    -5          - Zugriff verweigert
  663.                    -12         - Ungültiger Zugriff
  664.  
  665. ------------------------------------------------------
  666. fread
  667.  
  668. BESCHREIBUNG    -  Liest eine Datei in einen Puffer
  669.  
  670. SCHREIBWEISE    - function fread(handle : integer; amount :word;
  671.                   var buff) : integer;
  672.  
  673. PARAMETER       - handle - der DOS-Handle der Datei
  674.                   amount - die Anzahl der zu lesenden Bytes
  675.                            Größe des record <= $7FFF bytes
  676.                     buff - Pointer zur Addresse vom Datenpuffer
  677.  
  678. ERGEBNIS        - >=0 - Fehlerfrei (gibt die Zahl der gelesenen Bytes
  679.                         zurück)
  680.                    -5 - Zugriff veweigert
  681.                    -6 - ungültiger Handle
  682.  
  683. ------------------------------------------------------
  684. fseek
  685.  
  686. BESCHREIBUNG    - Verändert die logische Lese- Schreibposition in
  687.                   einer Datei
  688.  
  689. SCHREIBWEISE    - function fseek (handle : integer; mode : integer,
  690.                   offset:longint; var location : longint) : boolean;
  691.  
  692. PARAMETER       - handle - der DOS-Handle der Datei
  693.                     mode - Art der Zeigerbewegung, d.h.
  694.                            0 - von Dateianfang aus bewegen
  695.                            1 - von gegenwärtiger Position aus weiter
  696.                                bewegen
  697.                            2 - über Ende der Datei hinaus bewegen
  698.                  offset - offset in der Datei relativ zum Bewegungsmode (s.o.)
  699.                location - neue Adresse des Zeigers
  700.  
  701. ERGEBNIS        -  true - Fehlerfrei
  702.                   false - Irgendwas hat nicht geklappt.
  703.  
  704. ------------------------------------------------------
  705. fwrite
  706.  
  707. BESCHREIBUNG    - Schreibt in eine Datei
  708.  
  709. SCHREIBWEISE    - function fwrite(handle : integer; nwrite : word;
  710.                   var buff) : integer;
  711.  
  712. PARAMETER       - handle - der DOS-Handle der Datei
  713.                   nwrite - Zahl der zu schreibenden Bytes
  714.                            maximale Größe des Records <= $7FFF Bytes
  715.                     buff - pointer zur Addresse des Datenpuffers
  716.  
  717. ERGEBNIS        - >= 0 - Fehlefrei (gibt die Zahl der geschriebenen
  718.                          Bytes zurück)
  719.                    - 5 - Zugriff verweigert
  720.  
  721. ------------------------------------------------------
  722. getverify
  723.  
  724. BESCHREIBUNG    - Gibt den Status des DOS verify flags für Schreib-
  725.                   zugriffe zurück.
  726.  
  727. SCHREIBWEISE    - function getverify:boolean
  728.  
  729. PARAMETER       - keine
  730.  
  731. ERGEBNIS        -  true - verify ist eingeschaltet
  732.                   false - verify ist ausgeschaltet
  733.  
  734. ------------------------------------------------------
  735. readsector
  736.  
  737. BESCHREIBUNG    - Liest 512 Bytes eines bestimmten Sektors in einen
  738.                   Puffer
  739.  
  740. SCHREIBWEISE    - procedure readsector(segmemt,offset,drive,sector,
  741.                   number : word);
  742.  
  743. PARAMETER       - segment - das Segment des array Puffer Objekts
  744.                    offset - das Offset des Segments
  745.                     drive - das angegebene Laufwerk:
  746.                             1=a,2=b,3=c etc.
  747.                    sector - die logische Sektornummer
  748.                    number - die Anzahl der zu lesenden Sektoren
  749.  
  750. ERGEBNIS        - 0 - Fehlerfrei
  751.                   1 - Laufwerk hat falsches Format
  752.                   3 - Ungültige Sektorennummer
  753.                   4 - Hardwarefehler
  754.  
  755. ------------------------------------------------------
  756. setverify
  757.  
  758. BESCHREIBUNG    - Ändert das DOS verify flag für Schreibzugriffe
  759.  
  760. SCHREIBWEISE    - procedure setverify(setting : boolean);
  761.  
  762. PARAMETER       - setting -  true = verify wird eingeschaltet
  763.                           - false = verify wird ausgeschaltet
  764.  
  765. ------------------------------------------------------
  766. writesector
  767.  
  768. BESCHREIBUNG    - schreibt 512 Bytes aus einem Puffer in einen
  769.                   bestimmten Sektor auf dem Laufwerk
  770.  
  771. SCHREIBWEISE    - PROCEDURE WRITESECTOR(segment,offset,drive,sector,
  772.                   number:word);
  773.  
  774. PARAMETER       - segment - das Segment des array Puffer Objekts
  775.                    offset - das Offset des Segments
  776.                     drive - das angegebene Laufwerk:
  777.                             1=a,2=b,3=c etc.
  778.                    sector - die logische Sektornummer
  779.                    number - die Anzahl der zu lesenden Sektoren
  780.  
  781. ERGEBNIS        - 0 - Fehlerfrei
  782.                   1 - Laufwerk hat falsches Format
  783.                   2 - Schreibschutzfehler
  784.                   3 - Ungültige Sektorennummer
  785.                   4 - Hardwarefehler
  786.  
  787. -------------------------------------------------------
  788.  
  789.  
  790. 4.3 Tastatur
  791. -------------------
  792.  
  793. ------------------------------------------------------
  794. altkeydown
  795.  
  796. BESCHREIBUNG    - Zeigt an ob die <Alt> Taste gedrückt wird
  797.  
  798. SCHREIBWEISE    - function altkeydown : boolean;
  799.  
  800. PARAMETER       - keine
  801.  
  802. ERGEBNIS        -  true - wenn <Alt> gedrückt wird
  803.                   false - wenn nicht.
  804.  
  805. ------------------------------------------------------
  806. capslockdown
  807.  
  808. BESCHREIBUNG    - Zeigt an ob <Capslock> gedrückt wird
  809.  
  810. SCHREIBWEISE    - function capslockdown : boolean;
  811.  
  812. PARAMETER       - keine
  813.  
  814. ERGEBNIS        -  true - wenn <Capslock> gedrückt wird
  815.                   false - wenn nicht
  816. ------------------------------------------------------
  817. capslockon
  818.  
  819. BESCHREIBUNG    - Zeigt an ob Capslock eingeschaltet ist.
  820.  
  821. SCHREIBWEISE    - function capslockon : boolean;
  822.  
  823. PARAMETER       - keine
  824.  
  825. ERGEBNIS        -  true - <capslock> ist eingeschaltet
  826.                   false - <capslock> ist ausgeschaltet
  827. ------------------------------------------------------
  828. clearbuffer
  829.  
  830. BESCHREIBUNG    - Löscht den Tastaturpuffer
  831.  
  832. SCHREIBWEISE    - procedure clearbuffer;
  833.  
  834. PARAMETER       - keine
  835.  
  836. ------------------------------------------------------
  837. clearcapslock
  838.  
  839. BESCHREIBUNG    - Löscht die <capslock> Taste
  840.  
  841. SCHREIBWEISE    - procedure clearcapslock;
  842.  
  843. PARAMETER       - keine
  844.  
  845. ------------------------------------------------------
  846. clerins
  847.  
  848. BESCHREIBUNG    - Löscht die <Einfg> Taste
  849.  
  850. SCHREIBWEISE    - procedure clearins;
  851.  
  852. PARAMETER       - keine
  853.  
  854. ------------------------------------------------------
  855. clearnumlock
  856.  
  857. BESCHREIBUNG    - Löscht die <num> Taste
  858.  
  859. SCHREIBWEISE    - procedure clearnumlock;
  860.  
  861. PARAMETER       - keine
  862.  
  863. ------------------------------------------------------
  864. clearscrolllock
  865.  
  866. BESCHREIBUNG    - Löscht die <Rollen> Taste
  867.  
  868. SCHREIBWEISE    - procedure clearscrolllock;
  869.  
  870. PARAMETER       - keine
  871.  
  872. ------------------------------------------------------
  873. ctrlkeydown
  874.  
  875. BESCHREIBUNG    - Zeigt an ob die <Strg> Taste gedrückt wird
  876.  
  877. SCHREIBWEISE    - function ctrlkeydown : boolean;
  878.  
  879. PARAMETER       - keine
  880.  
  881. ERGEBNIS        -  true - <Strg> wird gedrückt
  882.                   false - <Strg> wird nicht gedrückt
  883.  
  884. ------------------------------------------------------
  885. ekeypressed
  886.  
  887. BESCHREIBUNG    - Prüft ob eine enhanced Taste gedrückt wurde. Diese
  888.                   Funktion ist der Standardfunktion keypressed ähnlich,
  889.                   aber sie unterstützt zusätzlich enhanced Tasten wie
  890.                   F11 oder F12.
  891.  
  892. SCHREIBWEISE    - ekeypressed : boolean;
  893.  
  894. PARAMETER       - keine
  895.  
  896. ERGEBNIS        -  true - enhanced Taste wurde gedrückt
  897.                   false - enhanced Taste wurde nicht gedrückt.
  898.  
  899. ------------------------------------------------------
  900. freshchar
  901.  
  902. BESCHREIBUNG    - Löscht den Tastaturpuffer und gibt das nächste Zeichen
  903.                   zurück.
  904.  
  905. SCHREIBWEISE    - function freshchar : boolean;
  906.  
  907. PARAMETER       - keine
  908.  
  909. ERGEBNIS        - Das nächste Zeichen. Wenn eine erweiterte Taste (wie
  910.                   z.B. F11) gedrückt wurde wird nur chr(0)
  911.                   zurückgegeben
  912.  
  913. ------------------------------------------------------
  914. getekey
  915.  
  916. BESCHREIBUNG    - Holt ein Zeichen aus dem Tastaturpuffer und wartet
  917.                   falls der Puffer leer ist. Diese Funktion nimmt auch
  918.                   erweiterte Tasten inklusive F11 und F12 an, falls sie
  919.                   von ihrem Computer unterstützt werden. Funktioniert nur
  920.                   auf AT model 339, XT2, XT286 und PS Systemen.
  921.  
  922. SCHREIBWEISE    - function getekey : word;
  923.  
  924. PARAMETER       - keine
  925.  
  926. ERGEBNIS        - Ein word daß das Zeichen und den Scancode enthält. Bitte
  927.                   sehen Sie unter dem Abschnitt "const" in der TPFAST.PAS
  928.                   Datei nach wenn Sie mehr über die Tastenkonstanten
  929.                   erfahren möchten. Sie können auch die HI,LO Funktionen
  930.                   benutzen um den Scancode zu bekommen.
  931.                   Beispiel:
  932.                   HI(x) - ergibt den Scancode
  933.                   LO(x) - ergibt das Zeichen
  934.  
  935. ------------------------------------------------------
  936. getkey
  937.  
  938. BESCHREIBUNG    - Holt ein Zeichen aus dem Tastaturpuffer und wartet
  939.                   falls der Puffer leer ist. Diese Funktion nimmt keine
  940.                   erweiterten Tasten an und wartet bis eine andere Taste
  941.                   gedrückt wurde. Benutzen Sie diese Funktion wenn Sie
  942.                   keine Erweiterte Tastatur benutzen.
  943.  
  944. SCHREIBWEISE    - function getkey : word;
  945.  
  946. PARAMETER       - keine
  947.  
  948. ERGEBNIS        - Ein word daß das Zeichen und den Scancode enthält. Bitte
  949.                   sehen Sie unter dem Abschnitt "const" in der TPFAST.PAS
  950.                   Datei nach wenn Sie mehr über die Tastenkonstanten
  951.                   erfahren möchten. Sie können auch die HI,LO Funktionen
  952.                   benutzen um den Scancode zu bekommen.
  953.                   Beispiel:
  954.                   HI(x) - ergibt den Scancode
  955.                   LO(x) - ergibt das Zeichen
  956.  
  957. ------------------------------------------------------
  958. inskeydown
  959.  
  960. BESCHREIBUNG    - Zeigt an ob die <Einfg> Taste gedrückt wird
  961.  
  962. SCHREIBWEISE    - function inskeydown : boolean;
  963.  
  964. PARAMETER       - keine
  965.  
  966. ERGEBNIS        -  true - wenn <Einfg> gedrückt wird
  967.                   false - wenn nicht
  968.  
  969. ------------------------------------------------------
  970. inskeyon
  971.  
  972. BESCHREIBUNG    - Zeigt an ob <Einfg> eingeschaltet ist.
  973.  
  974. SCHREIBWEISE    - function inskeyon : boolean;
  975.  
  976. PARAMETER       - keine
  977.  
  978. ERGEBNIS        -  true - <Einfg> ist eingeschaltet
  979.                   false - <Einfg> ist ausgeschaltet
  980.  
  981. ------------------------------------------------------
  982. keypause
  983.  
  984. BESCHREIBUNG    - Macht aus einer beliebigen Taste eine gedrückt=ein
  985.                   nicht gedrückt=aus - Taste. Dies ist eine besondere
  986.                   Funktion, die zwischen Tastendruck und Loslassen
  987.                   unterscheiden kann.
  988.  
  989. SCHREIBWEISE    - procedure keypause(code:char; ascii : boolean;
  990.                             wait_a,wait_b : byte);
  991.  
  992. PARAMETER       -   code - die Taste die für keypause verwendet wird.
  993.                    ascii -  true - code ist 1 byte ascii code
  994.                            false - code ist zweites Byte eines erweiterten
  995.                                   codes.
  996.                   wait_a - Zeit für das Puffer Auffrischsignal bei
  997.                            Tastendruck
  998.                   wait_b - Zeit für das Puffer Auffrischsignal bei
  999.                            Loslassen
  1000.  
  1001. ------------------------------------------------------
  1002. lastkey
  1003.  
  1004. BESCHREIBUNG    - liest den letzten Tastaturcode aus dem Puffer
  1005.  
  1006. SCHREIBWEISE    - function lastkey : char;
  1007.  
  1008. PARAMETER       - keine
  1009.  
  1010. ERGEBNIS        - Der letzte Tastaurcode im Puffer. Wenn der Tastatur-
  1011.                   puffer leer ist, gibt diese Routine 255 zurück. Wenn
  1012.                   die letzte Taste eine extended Taste ist, wird nur
  1013.                   chr(0) zurückgegeben.
  1014.  
  1015. ------------------------------------------------------
  1016. leftshiftdown
  1017.  
  1018. BESCHREIBUNG    - zeigt an ob die linke Shift Taste gedrückt wird.
  1019.  
  1020. SCHREIBWEISE    - function leftshiftdown : boolean;
  1021.  
  1022. PARAMETER       - keine
  1023.  
  1024. ERGEBNIS        -  true - die linke Shift Taste wird gedrückt.
  1025.                   false - wird nicht gedrückt
  1026.  
  1027. ------------------------------------------------------
  1028. nextkey
  1029.  
  1030. BESCHREIBUNG    -  Holt das nächste Zeichen aus dem Puffer ohne es im
  1031.                    Puffer zu löschen.
  1032.  
  1033. SCHREIBWEISE    - function nextkey : char;
  1034.  
  1035. PARAMETER       - keine
  1036.  
  1037. ERGEBNIS        - 0 - normaler ASCII wird ausgegeben
  1038.                   1 - erweiterte Taste wird ausgegeben
  1039.                   2 - Puffer ist leer
  1040.  
  1041. ------------------------------------------------------
  1042. numlockdown
  1043.  
  1044. BESCHREIBUNG    - Zeigt an ob <Num> gedrückt wird.
  1045.  
  1046. SCHREIBWEISE    - funcion numlockdown : boolean;
  1047.  
  1048. PARAMETER       - keine
  1049.  
  1050. ERGEBNIS        -  true - <Num> wird gedrückt
  1051.                   false - <Num> wird nicht gedrückt
  1052.  
  1053. ------------------------------------------------------
  1054. numlockon
  1055.  
  1056. BESCHREIBUNG    - Zeigt an ob <Num> eingeschaltet ist
  1057.  
  1058. SCHREIBWEISE    - function numlockon : boolean;
  1059.  
  1060. PARAMETER       - keine
  1061.  
  1062. ERGEBNIS        -  true - <Num> ist eingeschaltet
  1063.                   false - <Num> ist ausgeschaltet
  1064.  
  1065. ------------------------------------------------------
  1066. rightshifdown
  1067.  
  1068. BESCHREIBUNG    - Zeigt an ob die rechte Shift Taste gedrückt wird
  1069.  
  1070. SCHREIBWEISE    - function rightshiftdown : boolean;
  1071.  
  1072. PARAMETER       - keine
  1073.  
  1074. ERGEBNIS        -  true - die rechte Shift Taste wird gedrückt
  1075.                   false - sie wird nicht gedrückt
  1076.  
  1077. ------------------------------------------------------
  1078. scrolllockdown
  1079.  
  1080. BESCHREIBUNG    - Zeigt an ob die <Rollen> Taste gedrückt wird
  1081.  
  1082. SCHREIBWEISE    - function scrolllockdown : boolean;
  1083.  
  1084. PARAMETER       - keine
  1085.  
  1086. ERGEBNIS        -  true - <Rollen> wird gedrückt
  1087.                   false - <Rollen wird nicht gedrückt
  1088.  
  1089. ------------------------------------------------------
  1090. scrolllockon
  1091.  
  1092. BESCHREIBUNG    - Zeigt an ob die <Rollen> Taste eingeschaltet ist
  1093.  
  1094. SCHREIBWEISE    - function scrolllockon : boolean;
  1095.  
  1096. PARAMETER       - keine
  1097.  
  1098. ERGEBNIS        -  true - <Rollen> ist eingeschaltet.
  1099.                   false - <Rollen> ist ausgeschaltet.
  1100.  
  1101. ------------------------------------------------------
  1102. setcapslock
  1103.  
  1104. BESCHREIBUNG    - Schaltet Großschrift ein
  1105.  
  1106. SCHREIBWEISE    - procedure setcapslock;
  1107.  
  1108. PARAMETER       - keine
  1109.  
  1110. ------------------------------------------------------
  1111. setins
  1112.  
  1113. BESCHREIBUNG    - Schaltet <Einfg> ein
  1114.  
  1115. SCHREIBWEISE    - procedure setins;
  1116.  
  1117. PARAMETER       - keine
  1118.  
  1119. ------------------------------------------------------
  1120. setnumlock
  1121.  
  1122. BESCHREIBUNG    - Schaltet <Num> ein
  1123.  
  1124. SCHREIBWEISE    - procedure setnumlock;
  1125.  
  1126. PARAMETER       - keine
  1127.  
  1128. ------------------------------------------------------
  1129. setscrolllock
  1130.  
  1131. BESCHREIBUNG    - Schaltet <Rollen> ein
  1132.  
  1133. SCHREIBWEISE    - procedure setscrolllock;
  1134.  
  1135. PARAMETER       - keine
  1136.  
  1137.  
  1138.  
  1139. 4.4 Bildschirm
  1140. ---------------------
  1141.  
  1142. ------------------------------------------------------
  1143. blinkoff
  1144.  
  1145. BESCHREIBUNG    - Schaltet das Textattribut blinken aus. Mit EGA und
  1146.                   VGA Bildschirmen erhält man so weitere
  1147.                   Farbkombinationen wie schwarz auf gelbem Hintergrund
  1148.  
  1149. SCHREIBWEISE    - procedure blinkoff;
  1150.  
  1151. PARAMETER       - keine
  1152.  
  1153. ------------------------------------------------------
  1154. blinkon
  1155.  
  1156. BESCHREIBUNG    - Schaltet das Textattribut blinken ein. Dies ist der
  1157.                   Normalzustand aller Grafikkarten
  1158.  
  1159. SCHREIBWEISE    - procedure blinkon;
  1160.  
  1161. PARAMETER       - keine
  1162.  
  1163. ------------------------------------------------------
  1164. clearpage
  1165.  
  1166. BESCHREIBUNG    - Löscht eine vorher gespeicherte Seite aus dem Speicher
  1167.                   Bitte sehen Sie unter getpage für weitere Informationen
  1168.                   nach.
  1169.  
  1170. SCHREIBWEISE    - procedure clearpage(pagenumber,colour:byte);
  1171.  
  1172. PARAMETER       - pagenumber - die Seitenzahl/Nummer
  1173.                       colour - das Farbattribut zu dem die Seite
  1174.                                gelöscht werden soll.
  1175.  
  1176. ------------------------------------------------------
  1177. colourx
  1178.  
  1179. BESCHREIBUNG    - Ändert die Farbattribute einer Spalte.
  1180.                   Die dargestellten Zeichen werden nicht verändert.
  1181.  
  1182. SCHREIBWEISE    - procedure colorx(x,y,yy,colour:byte);
  1183.  
  1184. PARAMETER       -      x - Spaltenpositionskoordinate
  1185.                        y - Zeilenpositionskoordinate
  1186.                       yy - Anzahl der Spalten (Breite)
  1187.                   colour - das Farbattribut
  1188.  
  1189. ------------------------------------------------------
  1190. cursordown
  1191.  
  1192. BESCHREIBUNG    - Bewegt den Cursor die angegebene Zahl von Zeilen
  1193.                   nach unten.
  1194.  
  1195. SCHREIBWEISE    - procedure cursordown(rows : integer);
  1196.  
  1197. PARAMETER       - rows - Die Anzahl der Zeilen
  1198.  
  1199. ------------------------------------------------------
  1200. cursorleft
  1201.  
  1202. BESCHREIBUNG    - Bewegt den Cursor die angegebene Anzahl von Spalten
  1203.                   nach links
  1204.  
  1205. SCHREIBWEISE    - procedure cursorleft(columns : integer);
  1206.  
  1207. PARAMETER       - columns - die Anzahl der Spalten, um die der Cursor
  1208.                             nach links bewegt werden soll
  1209.  
  1210. ------------------------------------------------------
  1211. cursoroff
  1212.  
  1213. BESCHREIBUNG    - Schaltet den Cursor aus, macht ihn unsichtbar
  1214.  
  1215. SCHREIBWEISE    - procedure cursoroff;
  1216.  
  1217. PARAMETER       - keine
  1218.  
  1219. ------------------------------------------------------
  1220. cursoron
  1221.  
  1222. BESCHREIBUNG    - Schaltet den Cursor ein, macht ihn sichtbar
  1223.  
  1224. SCHREIBWEISE    - procedure cursoron;
  1225.  
  1226. PARAMETER       - keine
  1227.  
  1228. ------------------------------------------------------
  1229. cursorright
  1230.  
  1231. BESCHREIBUNG    - Bewegt den Cursor die angegebene Anzahl von Spalten
  1232.                   nach links.
  1233.  
  1234. SCHREIBWEISE    - procedure cursorright(columns : integer);
  1235.  
  1236. PARAMETER       - columns - Anzahl der Spalten
  1237.  
  1238. ------------------------------------------------------
  1239. cursorup
  1240.  
  1241. BESCHREIBUNG    - Bewegt den Cursor die angegebene Anzahl von Zeilen
  1242.                   nach oben.
  1243.  
  1244. SCHREIBWEISE    - procedure cursorup(rows : integer);
  1245.  
  1246. PARAMETER       - rows - Die Anzahl Zeilen
  1247.  
  1248. -----------------------------------------------------
  1249. dsp
  1250.  
  1251. BESCHREIBUNG    - Schreibt einen String direkt in den Videospeicher.
  1252.                   der String kann zu einer beliebigen Seite geschrieben
  1253.                   werden und das Farbattribut des Strings entspricht der
  1254.                   allgemeinen Variable textattr. Es wird kein Zeilen-
  1255.                   vorschub/Cursor zurücksetzen geschrieben (siehe dspln)
  1256.  
  1257. SCHREIBWEISE    - procedure dsp (s : stype);
  1258.  
  1259. PARAMETER       - s - der zu schreibende String
  1260.  
  1261. ------------------------------------------------------
  1262. dspat
  1263.  
  1264. BESCHREIBUNG    - Schreibt einen String direkt in den Videospeicher in
  1265.                   die angegebenen Koordinaten in dem angegebenen Text-
  1266.                   attribut. Der String kann zu einer beliebigen Seite
  1267.                   geschrieben werden. Es wird kein Zeilenvorschub/Cursor
  1268.                   zurücksetzen geschrieben (CR/LF, siehe dspln)
  1269.  
  1270. SCHREIBWEISE    - procedure dspat(s : stype; x,y,colour : byte);
  1271.  
  1272. PARAMETER       -      s - der zu schreibende String
  1273.                        x - die Spaltenposition
  1274.                        y - die Zeilenposition
  1275.                   colour - das Farbattribut des Strings
  1276.  
  1277. ------------------------------------------------------
  1278. dspcolour
  1279.  
  1280. BESCHREIBUNG    - Schreibt einen String in den Videospeicher mit einem
  1281.                   angegebenen Farbattribut. Der String kann zu jeder
  1282.                   beliebigen Seite geschrieben werden. Es wird kein
  1283.                   Zeilenvorschub/Cursor zurücksetzen geschrieben
  1284.                   (CR/LF, siehe dspln)
  1285.  
  1286. SCHREIBWEISE    -procedure dspcolour(s:stype;colour:byte);
  1287.  
  1288. PARAMETER       -      s - der zu schreibende String
  1289.                   colour - das Farbattribut des Strings
  1290.  
  1291. ------------------------------------------------------
  1292. dspend
  1293.  
  1294. BESCHREIBUNG    - Schreibt einen String in den Videospeicher und löscht
  1295.                   die Zeichen nache dem String bis eine vorgegebene Länge
  1296.                   erreicht ist.
  1297.  
  1298. SCHREIBWEISE    - procedure dspend(s:stype;x,y,length,colour : byte);
  1299.  
  1300. PARAMETER       -      s - der zu schreibende String
  1301.                        x - die Spaltenposition des Anfangs
  1302.                        y - die Zeilenposition des Anfangs
  1303.                   colour - das Farbattribut des Strings
  1304.                   length - die Anzahl der Zeichen bis zum Stringende
  1305.  
  1306. ------------------------------------------------------
  1307. dspjust
  1308.  
  1309. BESCHREIBUNG    - Schreibt einen String in den Videospeicher bündig
  1310.                   an einen angegebenen Bildschirmpunkt
  1311.  
  1312. SCHREIBWEISE    - procedure dspjust(s : stype; x,y,colour : byte);
  1313.  
  1314. PARAMETER       -      s - der zu schreibende String
  1315.                        x - die Spaltenposition des Anfangs
  1316.                        y - die Zeilenposition des Anfangs
  1317.                   colour - das Farbattribut des Strings
  1318.  
  1319. ------------------------------------------------------
  1320. dspln
  1321.  
  1322. BESCHREIBUNG    - Schreibt einen string in den Videospeicher. Der String
  1323.                   kann in jede beliebige Seite geschrieben werden und
  1324.                   das Farbattribut des Strings ist die globale Variable
  1325.                   textattr. Ein Zeilenvorschub / Cursor zurücksetzen wird
  1326.                   an den String angehängt (CR/LF)
  1327.  
  1328. SCHREIBWEISE    - procedure(dspln(s : stype);
  1329.  
  1330. PARAMETER       - s - der zu schreibende String
  1331.  
  1332. ------------------------------------------------------
  1333. dsplncolour
  1334.  
  1335. BESCHREIBUNG    - Schreibt einen String im angegebenen Farbattribut in den
  1336.                   Videospeicher. Der String kann in jede beliebige Seite
  1337.                   geschrieben werden.Ein Zeilenvorschub / Cursor
  1338.                   zurücksetzen wird an den String angehängt (CR/LF)
  1339.  
  1340. SCHREIBWEISE    - procedure dsplncolour(s : stype; colour : byte);
  1341.  
  1342. PARAMETER       -     s - der zu schreibende String
  1343.                  colour - das Farbattribut des Strings (0-255)
  1344.  
  1345. ------------------------------------------------------
  1346. dsppart
  1347.  
  1348. BESCHREIBUNG    - Schreibt einnen Teil eines Strings in den Videospeicher,
  1349.                   in die angegebenen Koordinaten, in einem angegebenen
  1350.                   Farbattribut
  1351.  
  1352. SCHREIBWEISE    - procedure dspart(s : stype; start, numch, x,
  1353.                   y, colur : byte);
  1354.  
  1355. PARAMETER       -      s - der u schreibende String
  1356.                    start - die Anfangsposition in s
  1357.                    numch - die Anzahl der zu schreibenden Zeichen
  1358.                        x - die Spaltenposition des Anfangs
  1359.                        y - die Zeilenposition des Anfangs
  1360.                   colour - das Farbattribut des Strings
  1361.  
  1362. ------------------------------------------------------
  1363. dspvert
  1364.  
  1365. BESCHREIBUNG    - Schreibt einen String senkrecht in den Videospeicher
  1366.  
  1367. SCHREIBWEISE    - procedure dspvert(s: stype; x, y, colour : byte);
  1368.  
  1369. PARAMETER       -      s - der zu schreibende String
  1370.                        x - die Spaltenposition des Anfangs
  1371.                        y - die Zeilenposition des Anfangs
  1372.                   colour - das Farbattribut des Strings
  1373.  
  1374. ------------------------------------------------------
  1375. formatleft
  1376.  
  1377. BESCHREIBUNG    - Schreibt einen String in den Videospeicher mit
  1378.                   Formatierung. Der String wird rechts vom Cursor
  1379.                   geschrieben. Falls how_many einen positiven Wert
  1380.                   enthält, wird der Cursor rechts vom Ausgangspunkt
  1381.                   versetzt. Wenn how_many negativ ist, wird der Cursor
  1382.                   direkt unter den Anfangspunkt gesetzt.
  1383.  
  1384. SCHREIBWEISE    - procedure formatleft(s : stype; how_many : integer;
  1385.                   colour : byte);
  1386.  
  1387. PARAMETER       -        s - der zu schreibende String
  1388.                   how_many - Abstand zwischen Startposition und End-
  1389.                              position des Cursors
  1390.                     colour - das Farbattribut
  1391.  
  1392. ------------------------------------------------------
  1393. formatright
  1394.  
  1395. BESCHREIBUNG    - Schreibt einen String in den Videospeicher mit
  1396.                   Formatierung. Der String wird links vom Cursor
  1397.                   geschrieben. Falls how_many einen positiven Wert
  1398.                   enthält, wird der Cursor links vom Ausgangspunkt
  1399.                   versetzt. Wenn how_many negativ ist, wird der Cursor
  1400.                   direkt unter den Anfangspunkt gesetzt.
  1401.  
  1402. SCHREIBWEISE    - procedure formatright(s : stype; how_many : integer;
  1403.                   colour : byte);
  1404.  
  1405. PARAMETER       -        s - der zu schreibende String
  1406.                   how_many - Abstand zwischen Startposition und End-
  1407.                              position des Cursors
  1408.                     colour - das Farbattribut
  1409.  
  1410. ------------------------------------------------------
  1411. getcolour
  1412.  
  1413. BESCHREIBUNG    - Gibt das Farbattribut einer Bildschirmposition zurück
  1414.  
  1415. SCHREIBWEISE    - function getcolour(x,y : byte) : byte;
  1416.  
  1417. PARAMETER       - x - Spaltenposition des Anfangs
  1418.                   y - Zeilenposition des Anfangs
  1419.  
  1420. ERGEBNIS        - Das Farbattribut
  1421.  
  1422. ------------------------------------------------------
  1423. getpage
  1424.  
  1425. BESCHREIBUNG    - Holt die aktuelle Seite
  1426.  
  1427. SCHREIBWEISE    - function getpage : integer;
  1428.  
  1429. PARAMETER       - keine
  1430.  
  1431. ERGEBNIS        - Die aktuelle aktive Seite
  1432.  
  1433. ------------------------------------------------------
  1434. intenseoff
  1435.  
  1436. BESCHREIBUNG    - Schaltet das Textattribut intensiv aus
  1437.  
  1438. SCHREIBWEISE    - procedure intenseoff;
  1439.  
  1440. PARAMETER       - keine
  1441.  
  1442. ------------------------------------------------------
  1443. intenseon
  1444.  
  1445. BESCHREIBUNG    - Schaltet das Textattribut intensiv ein.
  1446.  
  1447. SCHREIBWEISE    - procedure intenseon;
  1448.  
  1449. PARAMETER       - keine
  1450.  
  1451. ------------------------------------------------------
  1452. normal
  1453.  
  1454. BESCHREIBUNG    - Setzt das Textattribut auf normal
  1455.  
  1456. SCHREIBWEISE    - procedure normal;
  1457.  
  1458. PARAMETER       - keine
  1459.  
  1460. ------------------------------------------------------
  1461. reverse
  1462.  
  1463. BESCHREIBUNG    - Vertauscht die Textattribute.
  1464.  
  1465. SCHREIBWEISE    - procedure reverse;
  1466.  
  1467. PARAMETER       - keine
  1468.  
  1469. ------------------------------------------------------
  1470. rowcolour
  1471.  
  1472. BESCHREIBUNG    - Ändert das Farbattribut einer Textzeile. Der Text
  1473.                   wird nicht verändert
  1474.  
  1475. SCHREIBWEISE    - procedure rowcolour(x,y,xx,colour : byte);
  1476.  
  1477. PARAMETER       -      x - obere linke Spaltenposition
  1478.                        y - obere linke Zeilenposition
  1479.                       xx - Anzahl der zu verändernden Zeilen
  1480.                   colour - Das Farbattribut
  1481.  
  1482. ------------------------------------------------------
  1483. screencolour
  1484.  
  1485. BESCHREIBUNG    - Ändert das Farbattribut eines rechteckigen Bildschirm-
  1486.                   ausschnitts. Der Text wird nicht verändert.
  1487.  
  1488. SCHREIBWEISE    - procedure screencolour(x,y,xx,yy,colour : byte);
  1489.  
  1490. PARAMETER       -      x - obere linke Spaltenposition
  1491.                        y - obere linke Zeilenposition
  1492.                       xx - Anzahl der zu verändernden Spalten
  1493.                       yy - Anzahl der zu verändernden Zeilen
  1494.                   colour - Das Farbattribut
  1495.  
  1496. ------------------------------------------------------
  1497. setcolour
  1498.  
  1499. BESCHREIBUNG    - Setzt das Farbattribut eines Zeichens an einer
  1500.                   bestimmten Bildschirmposition. Der Text wird nicht
  1501.                   verändert.
  1502.  
  1503. SCHREIBWEISE    - procedure setcolour(x,y, colour : byte);
  1504.  
  1505. PARAMETER       -      x - obere linke Spaltenposition
  1506.                        y - obere linke Zeilenposition
  1507.                   colour - das Farbattribut
  1508.  
  1509. ------------------------------------------------------
  1510. setpage
  1511.  
  1512. BESCHREIBUNG    - Macht eine bestimmte Seite zur aktuellen aktiven Seite
  1513.                   VGA und EGA Karten unterstützen 8 Seiten, d.h. 0-7 und
  1514.                   MONOCHROME Karten unterstützen nur eine Seite
  1515.  
  1516. SCHREIBWEISE    - procedure setpage(pagenumber : integer);
  1517.  
  1518. PARAMETER       - pagenumber - die Seitenzahl
  1519.  
  1520. ------------------------------------------------------
  1521. swappage
  1522.  
  1523. BESCHREIBUNG    - Tauscht den gesamten Speicherbereich einer Seite mit
  1524.                   einem Puffer. Sehen Sie unter getpage für weitere
  1525.                   Informationen nach.
  1526.  
  1527. SCHREIBWEISE    - procedure swappage(box :pointer; pagenumber :byte);
  1528.  
  1529. PARAMETER       -        box - array um die Seite zu speichern
  1530.                   pagenumber - die Seitenzahl
  1531.  
  1532.  
  1533.  
  1534. 4.5 Text-Graphik Modus
  1535. --------------------------
  1536.  
  1537. ------------------------------------------------------
  1538. copyclear
  1539.  
  1540. BESCHREIBUNG    -  Kopiert einen Bildschirminhalt in einen array und
  1541.                    löscht den Bildschirm. Das Ergebnis ist das gleiche
  1542.                    wie das Aufrufen von savescreen und clrscr, aber
  1543.                    läuft erheblich schneller ab.
  1544.  
  1545. SCHREIBWEISE    - procedure copyclear( box : pointer; x,y,xx,yy,
  1546.                   colour : byte);
  1547.  
  1548. PARAMETER       -    box - byte array pointer der den Bildschirm-
  1549.                             inhalt enthält.
  1550.                        x - obere linke Spaltenposition
  1551.                        y - obere linke Zeilenposition
  1552.                       xx - Anzahl der Spalten
  1553.                       yy - Anzahl der Zeilen
  1554.                   colour - das Farbattribut
  1555.  
  1556. ------------------------------------------------------
  1557. drawbox
  1558.  
  1559. BESCHREIBUNG    - Zeichnet ein einfaches Rechteck auf den Bildschirm, mit
  1560.                   einfachen, doppelten, oder einer Kombination aus
  1561.                   einfachen und doppelten Linien als Rand. Wenn eine
  1562.                   Kombination aus einfachen und doppelten Linien gewählt
  1563.                   wird, werden die Eckstücke automatisch angepasst.
  1564.  
  1565. SCHREIBWEISE    - procedure drawbox(chx,chy : char x,y,xx,yy,
  1566.                   colour : byte);
  1567.  
  1568. PARAMETER       -    chx - das Zeichen daß für die horizontalen Linien
  1569.                            verwendet werden soll:
  1570.                            'd','D' - doppelte Linien
  1571.                            's','S' - einfache Linien
  1572.                      chy - das Zeichen daß für die vertikalen Linien
  1573.                            verwendet werden soll
  1574.                            'd','D' - doppelte Linien
  1575.                            's','S' - einfache Linien
  1576.                        x - obere linke Spaltenposition
  1577.                        y - obere linke Zeilenposition
  1578.                       xx - Anzahl der Spalten
  1579.                       yy - Anzahl der Zeilen
  1580.                   colour - das Farbattribut
  1581.  
  1582. ------------------------------------------------------
  1583. fillscreen
  1584.  
  1585. BESCHREIBUNG    - Füllt einen Bildschirmausschnitt mit einem bestimmten
  1586.                   Zeichen mit einem bestimmten Farbattribut
  1587.  
  1588. SCHREIBWEISE    - procedure fillscreen(ch : char; x,y,xx,yy,
  1589.                   colour : byte);
  1590.  
  1591. PARAMETER       -     ch - das zu verwendende Zeichen
  1592.                        x - obere linke Spaltenposition
  1593.                        y - obere linke Zeilenposition
  1594.                       xx - Anzahl der Spalten
  1595.                       yy - Anzahl der Zeilen
  1596.                   colour - das Farbattribut
  1597.  
  1598. ------------------------------------------------------
  1599. restorescreen
  1600.  
  1601. BESCHREIBUNG    - Stellt einen vorher gespeicherten Bildschirm wieder her
  1602.                   Bitte lesen Sie die Information zur savescreen Prozedur
  1603.                   bevor Sie dies benutzen.
  1604.  
  1605. SCHREIBWEISE    - procedure restorescreen(box : pointer; x,y,xx,
  1606.                   yy : byte);
  1607.  
  1608. PARAMETER       - box - der byte array pointer in dem der Bildschirm-
  1609.                         inhalt gespeichert wird
  1610.                     x - obere linke Spaltenposition
  1611.                     y - obere linke Zeilenposition
  1612.                    xx - Anzahl der Spalten
  1613.                    yy - Anzahl der Zeilen
  1614.  
  1615. ------------------------------------------------------
  1616. savescreen
  1617.  
  1618. BESCHREIBUNG    - Kopiert den Bildschirminhalt (oder Ausschnitt) inklusive
  1619.                   der Farbattribute in einen byte array pointer. Der
  1620.                   'Ausschnitt' pointer sollte ein array of bytes in der
  1621.                   Größe des zu speichernden Bildschirms sein. Dabei ist
  1622.                   zu bedenken, daß ein byte für das Zeichen und eins für
  1623.                   das Farbattribut gebraucht wird.
  1624.                   D.h. um den gesamten Bildschirm zu speichern wird ein
  1625.                   array[1..4000] of byte benötigt. Vergessen Sie nicht die
  1626.                   Adresse des pointers anzugeben.
  1627.                   Beispiel: savescreen(@boxptr,1,1,80,25);
  1628.  
  1629.  
  1630. SCHREIBWEISE    - procedure savescreen(box : pointer; x,y,xx,yy : byte);
  1631.  
  1632. PARAMETER       - box - byte array pointer der den Bildschirminhalt
  1633.                         aufnimmt
  1634.                     x - obere linke Spaltenposition
  1635.                     y - obere linke Zeilenposition
  1636.                    xx - Anzahl der Spalten
  1637.                    yy - Anzahl der Zeilen
  1638.  
  1639. ------------------------------------------------------
  1640. screendown
  1641.  
  1642. BESCHREIBUNG    - Bewegt einen Teil des Bildschirms eine Zeile nach unten
  1643.                   Der Bildschirmausschnitt sollte vorher mit savescreen
  1644.                   gespeichert worden sein, damit der 'Rechteck'-pointer
  1645.                   richtig initialisiert wird. Die Variablen x und y
  1646.                   werden automatisch auf die neue Bildschirmposition ge-
  1647.                   setzt.
  1648.  
  1649. SCHREIBWEISE    - procedure screendown(box : pointer; var x,y : byte;
  1650.                   xx,yy : byte);
  1651.  
  1652. PARAMETER       - box - der byte array pointer, der den Bildschirminhalt
  1653.                         speichert.
  1654.                     x - obere linke Spaltenposition
  1655.                     y - obere linke Zeilenposition
  1656.                    xx - Anzahl der Spalten
  1657.                    yy - Anzahl der Zeilen
  1658.  
  1659. ------------------------------------------------------
  1660. screenleft
  1661.  
  1662. BESCHREIBUNG    - Bewegt einen Bildschirmausschnitt 2 Spalten nach links.
  1663.                   Der Bildschirmausschnitt sollte vorher mit savescreen
  1664.                   gespeichert worden sein, damit der 'Rechteck'-pointer
  1665.                   richtig initialisiert wird. Die Variablen x und y
  1666.                   werden automatisch auf die neue Bildschirmposition ge-
  1667.                   setzt.
  1668.  
  1669. SCHREIBWEISE    - procedure screenleft(box : pointer; var x,y : byte;
  1670.                   xx,yy : byte);
  1671.  
  1672. PARAMETER       - box - der byte array pointer, der den Bildschirminhalt
  1673.                         speichert.
  1674.                     x - obere linke Spaltenposition
  1675.                     y - obere linke Zeilenposition
  1676.                    xx - Anzahl der Spalten
  1677.                    yy - Anzahl der Zeilen
  1678.  
  1679. ------------------------------------------------------
  1680. screenright
  1681.  
  1682. BESCHREIBUNG    - Bewegt einen Bildschirmnausschnitt zwei Spalten nach
  1683.                   rechts.Der Bildschirmausschnitt sollte vorher mit
  1684.                   savescreen gespeichert worden sein, damit der
  1685.                   'Rechteck'-pointer richtig initialisiert wird. Die
  1686.                   Variablen x und y werden automatisch auf die neue
  1687.                   Bildschirmposition gesetzt.
  1688.  
  1689. SCHREIBWEISE    - procedure screenright(box : pointer; var x,y : byte;
  1690.                   xx,yy : byte);
  1691.  
  1692. PARAMETER       - box - der byte array pointer, der den Bildschirminhalt
  1693.                         speichert.
  1694.                     x - obere linke Spaltenposition
  1695.                     y - obere linke Zeilenposition
  1696.                    xx - Anzahl der Spalten
  1697.                    yy - Anzahl der Zeilen
  1698.  
  1699. ------------------------------------------------------
  1700. screenup
  1701.  
  1702. BESCHREIBUNG    - Bewegt einen Bildschirmausschnitt eine Zeile nach oben.
  1703.                   Der Bildschirmausschnitt sollte vorher mit savescreen
  1704.                   gespeichert worden sein, damit der 'Rechteck'-pointer
  1705.                   richtig initialisiert wird. Die Variablen x und y
  1706.                   werden automatisch auf die neue Bildschirmposition ge-
  1707.                   setzt.
  1708.  
  1709. SCHREIBWEISE    - procedure screenup(box : pointer; var x,y : byte;
  1710.                   xx,yy : byte);
  1711.  
  1712. PARAMETER       - box - der byte array pointer, der den Bildschirminhalt
  1713.                         speichert.
  1714.                     x - obere linke Spaltenposition
  1715.                     y - obere linke Zeilenposition
  1716.                    xx - Anzahl der Spalten
  1717.                    yy - Anzahl der Zeilen
  1718.  
  1719. ------------------------------------------------------
  1720. scrollx
  1721.  
  1722. BESCHREIBUNG    - Rollt einen bestimmten Bildschirmausschnitt nach rechts
  1723.                   oder links und löscht die überzähligen Spalten mit
  1724.                   einem bestimmte Farbattribut.
  1725.  
  1726. SCHREIBWEISE    - procedure scrollx( where : char; x,y,xx,yy,cols,
  1727.                   colour : byte);
  1728.  
  1729. PARAMETER       -  where - die Richtung, d.h.
  1730.                            'l','L' - nach links rollen
  1731.                            'r','R' - nach rechts rollen
  1732.                        x - obere linke Spaltenposition
  1733.                        y - obere linke Zeilenposition
  1734.                       xx - Anzahl der Spalten
  1735.                       yy - Anzahl der Zeilen
  1736.                     cols - Anzahl der Spalten um die versetzt werden soll
  1737.                   colour - das Farbattribut mit dem leere Spalten gefüllt
  1738.                            werden
  1739.  
  1740. ------------------------------------------------------
  1741. scrolly
  1742.  
  1743. BESCHREIBUNG    - Rollt einen bestimmten Bildschirmausschnitt nach oben
  1744.                   oder unten und löscht die überzähligen Zeilen mit einem
  1745.                   bestimmten Farbattribut.
  1746.  
  1747. SCHREIBWEISE    - procedure scrolly(where : char; x,y,xx,yy,lines,
  1748.                   colour : byte);
  1749.  
  1750. PARAMETER       -  where - die Richtung, d.h.
  1751.                           'u','U' - nach oben rollen
  1752.                           'd','D' - nach unten rollen
  1753.                        x - obere linke Spaltenposition
  1754.                        y - obere linke Zeilenposition
  1755.                       xx - Anzahl der Spalten
  1756.                       yy - Anzahl der Zeilen
  1757.                    lines - Anzahl der Zeilen um die versetzt werden soll.
  1758.                   colour - das Farbattribut mit dem leere Zeilen gefüllt
  1759.                            werden sollen.
  1760.  
  1761.  
  1762.  
  1763. 4.6 Strings
  1764. ---------------------
  1765.  
  1766. ------------------------------------------------------
  1767. changechar
  1768.  
  1769. BESCHREIBUNG    - Ändert jeds Vorkommnis eines bestimmten Zeichens in
  1770.                   einem String
  1771.  
  1772. SCHREIBWEISE    - procedure changechar(var s : stype; search,
  1773.                   replace : char);
  1774.  
  1775. PARAMETER       -       s - der zu verändernde String
  1776.                    search - Das Zeichen das gesucht wird
  1777.                   replace - Das Zeichen daß 'search' ersetzt
  1778.  
  1779. FEHLERCODE      - 0 - Fehlerfrei
  1780.                   1 - Zeichen nicht gefunden
  1781.  
  1782. ------------------------------------------------------
  1783. compare
  1784.  
  1785. BESCHREIBUNG    - Vergleicht zwei Strings. Groß / Kleinschreibung wird
  1786.                   ignoriert.
  1787.  
  1788. SCHREIBWEISE    - function compare(s1, s2 : stype): boolean;
  1789.  
  1790. PARAMETER       - s1 - erster zu vergleichender String
  1791.                   s2 - zweiter zu vergleichender String
  1792.  
  1793. ERGEBNIS        -  true - Strings sind identisch
  1794.                   false - Strings sind nicht identisch
  1795.  
  1796. ------------------------------------------------------
  1797. deletechar
  1798.  
  1799. BESCHREIBUNG    - Löscht alle Vorkommnisse eines bestimmten Zeichens
  1800.  
  1801. SCHREIBWEISE    - procedure deletechar(var s : stype; ch : char);
  1802.  
  1803. PARAMETER       -  s - der zu verändernde String
  1804.                   ch - das zu löschende Zeichen
  1805.  
  1806. Fehlecode       - 0 - Fehlerfrei
  1807.                   1 - Zeichen nicht gefunden
  1808.  
  1809. ------------------------------------------------------
  1810. deleteleft
  1811.  
  1812. BESCHREIBUNG    - Löscht alle Zeichen vom Anfang eines Strings bis
  1813.                   ein bestimmtes Zeichen erreicht wird.
  1814.  
  1815. SCHREIBWEISE    - procedure deleteleft(var s: stype; border : char);
  1816.  
  1817. PARAMETER       -      s - der zu verändernde String
  1818.                   border - das Zeichen bei dem das Löschen aufhört
  1819.  
  1820. Fehlecode       - 0 - Fehlerfrei
  1821.                   1 - Zeichen nicht gefunden
  1822.  
  1823. ------------------------------------------------------
  1824. deleteright
  1825.  
  1826. BESCHREIBUNG    - Löscht alle Zeichen vom Ende eines Strings bis ein
  1827.                   bestimmtes Zeichen erreicht wird.
  1828.  
  1829. SCHREIBWEISE    - procedure deleteright(var s : stype; border : char);
  1830.  
  1831. PARAMETER       -      s - der zu verändernde String
  1832.                   border - das Zeichen bei dem das Löschen aufhört
  1833.  
  1834. FEHLERCODE      - 0 - Fehlerfrei
  1835.                   1 - Zeichen nicht gefunden
  1836.  
  1837. ------------------------------------------------------
  1838. leftend
  1839.  
  1840. BESCHREIBUNG    - Gibt das linke Ende eines Strings bis zu einem
  1841.                   bestimmten Zeichen aus.
  1842.  
  1843. SCHREIBWEISE    - function leftend(var s: stype; border: char): stype;
  1844.  
  1845. PARAMETER       -      s - der zu verändernde String
  1846.                   border - das Zeichen bei dem das Suchen aufhört
  1847.  
  1848. ERGEBNIS        - der neue String
  1849.  
  1850. FEHLERCODE      - 0 - Fehlerfrei
  1851.                   1 - Zeichen nicht gefunden
  1852.  
  1853. ------------------------------------------------------
  1854. lowercase
  1855.  
  1856. BESCHREIBUNG    - Ändert einen String in Kleinbuchstaben
  1857.  
  1858. SCHREIBWEISE    - procedure lowercase(var s: stype);
  1859.  
  1860. PARAMETER       - s - der zu verändernde String
  1861.  
  1862. ------------------------------------------------------
  1863. overwrite
  1864.  
  1865. BESCHREIBUNG    - Überschreibt einen Teil eines Strings mit einem
  1866.                   anderen String
  1867.  
  1868. SCHREIBWEISE    - procedure overwrite(var s: stype; subs: stype;
  1869.                   position: integer;
  1870.  
  1871. PARAMETER       -        s - der zu verändernde String
  1872.                       subs - der String der 's' ersetzt
  1873.                   position - die Stelle an dem das Überschreiben
  1874.                              anfängt
  1875.  
  1876. FEHLERCODE     - 0 - Fehlerfrei
  1877.                  1 - Fehler
  1878.  
  1879. ------------------------------------------------------
  1880. padcentre
  1881.  
  1882. BESCHREIBUNG    - Verlängert einen String durch einfügen von
  1883.                   Zeichen an einer beliebigen Stelle, bis eine
  1884.                   bestimmte Länge erreicht ist.
  1885.  
  1886. SCHREIBWEISE    - procedure padcentre(var s: stype; ch: char;
  1887.                   position_length: integer);
  1888.  
  1889. PARAMETER       -        s - der zu verändernde String
  1890.                         ch - das Füllzeichen
  1891.                   position - die Stelle an der das Einfügen statt-
  1892.                              findet
  1893.                     length - die neue Länge von s
  1894.  
  1895. FEHLERCODE     - 0 - Fehlerfrei
  1896.                  1 - Fehler
  1897.  
  1898. ------------------------------------------------------
  1899. padends
  1900.  
  1901. BESCHREIBUNG    - Verlängert einen String an beiden Enden auf eine
  1902.                   bestimmte Länge
  1903.  
  1904. SCHREIBWEISE    - procedure padends(var s: stype; ch: char;
  1905.                   length: integer);
  1906.  
  1907. PARAMETER       -      s - der zu verändernde String
  1908.                       ch - das Füllzeichen
  1909.                   length - die neue Länge von s
  1910.  
  1911. FEHLERCODE      - 0 - Fehlerfrei
  1912.                   1 - Fehler
  1913.  
  1914. ------------------------------------------------------
  1915. padleft
  1916.  
  1917. BESCHREIBUNG    - Verlängert einen String vom Anfang an auf eine
  1918.                   bestimmte Länge
  1919.  
  1920. SCHREIBWEISE    - procedure padleft(var s: stype; ch: char;
  1921.                   length: integer);
  1922.  
  1923. PARAMETER       -      s - der zu verändernde String
  1924.                       ch - das Füllzeichen
  1925.                   length - die neue Länge von s
  1926.  
  1927. FEHLERCODE      - 0 - Fehlerfrei
  1928.                   1 - Fehler
  1929.  
  1930. ------------------------------------------------------
  1931. padright
  1932.  
  1933. BESCHREIBUNG    - Verlängert einen String vom Ende an auf eine
  1934.                   bestimmte Länge
  1935.  
  1936. SCHREIBWEISE    - procedure padright(var s: stype; ch: char;
  1937.                   length: integer);
  1938.  
  1939. PARAMETER       -      s - der zu verändernde String
  1940.                       ch - das Füllzeichen
  1941.                   length - die neue Länge von s
  1942.  
  1943. FEHLERCODE      - 0 - Fehlerfrei
  1944.                   1 - Fehler
  1945.  
  1946. ------------------------------------------------------
  1947. replace
  1948.  
  1949. BESCHREIBUNG    - Löscht eine bestimmte Anzahl Zeichen und fügt
  1950.                   einen neuen String ein
  1951.  
  1952. SCHREIBWEISE    - procedure replace(var s:stype; subs: stype;
  1953.                   position,chars: integer);
  1954.  
  1955. PARAMETER       -        s - der zu verändernde String
  1956.                       subs - der einzufügende String
  1957.                   position - Die Stelle ab der das Ersetzen beginnt
  1958.                      chars - die Anzahl Buchstaben die vor dem
  1959.                              einfügen gelöscht werden sollen
  1960.  
  1961. FEHLERCODE      - 0 - Fehlerfrei
  1962.                   1 - Fehler
  1963.  
  1964. ------------------------------------------------------
  1965. rightend
  1966.  
  1967. BESCHREIBUNG    - Gibt das rechte Ende eines Strings bis zu einem
  1968.                   bestimmten Zeichen aus.
  1969.  
  1970. SCHREIBWEISE    - function rightend(var s: stype; border: char):stype;
  1971.  
  1972. PARAMETER       -      s - der zu verändernde String
  1973.                   border - das Zeichen bei dem die Suche abgebrochen
  1974.                            wird
  1975.  
  1976. ERGEBNIS        - der neue String
  1977.  
  1978. FEHLERCODE      - 0 - Fehlerfrei
  1979.                   1 - Zeichen nicht gefunden
  1980.  
  1981. ------------------------------------------------------
  1982. seekstring
  1983.  
  1984. BESCHREIBUNG    - Sucht nach einer Zeichenfolge in einem String
  1985.  
  1986. SCHREIBWEISE    - function seekstring(s, subs: stype;
  1987.                   startpt: integer): integer;
  1988.  
  1989. PARAMETER       -       s - der zu verändernde String
  1990.                      subs - die zu suchende Zeichenfolge
  1991.                   startpt - die Anfangsposition für die Suche
  1992.  
  1993. ERGEBNIS        - die Position der Zeichenfolge
  1994.  
  1995. FEHLERCODE      - 0 - Fehlerfrei
  1996.                   1 - Fehler
  1997.  
  1998. ------------------------------------------------------
  1999. stringend
  2000.  
  2001. BESCHREIBUNG    - Gibt eine bestimmte Anzahl vom Ende eines Strings
  2002.                   an aus.
  2003.  
  2004. SCHREIBWEISE    - function stringend(s: stype; numberchars: integer)
  2005.                   : stype;
  2006.  
  2007. PARAMETER       -           s - der zu verändernde String
  2008.                   numberchars - die Zahl der auszugebenden Zeichen
  2009.  
  2010. ERGEBNIS        - den neuen String
  2011.  
  2012. FEHLERCODE      - 0 - Fehlerfrei
  2013.                   1 - s ist Null
  2014.                   2 - ein anderer Fehler
  2015.  
  2016. ------------------------------------------------------
  2017. stringof
  2018.  
  2019. BESCHREIBUNG    - Erzeugt einen neuen String aus Wiederholungen eines
  2020.                   Teilstrings
  2021.  
  2022. SCHREIBWEISE    - function stringof(s: stype; length: integer):stype;
  2023.  
  2024. PARAMETER       -      s - der zu verändernde String
  2025.                   length - Länge des zurückzugebenden Strings
  2026.  
  2027. FEHLERCODE      - 0 - Fehlerfrei
  2028.                   1 - Fehler
  2029.  
  2030. ------------------------------------------------------
  2031. uppercase
  2032.  
  2033. BESCHREIBUNG    - Wandelt einen String in Großbuchstaben um
  2034.  
  2035. SCHREIBWEISE    - procedure uppercase(var s: stype);
  2036.  
  2037. PARAMETER       - s - der zu verändernde String
  2038.  
  2039. ------------------------------------------------------
  2040. wordcount
  2041.  
  2042. BESCHREIBUNG    - Zäht die Anzahl von Wörtern in einem String. Ein
  2043.                   Wort ist definiert als eine Anzahl von Zeichen
  2044.                   außer dem Leerzeichen (#32)
  2045.  
  2046. SCHREIBWEISE    - function wordcount(s: stype): integer;
  2047.  
  2048. PARAMETER       - s - der zu verändernde String
  2049.